<item name="Remove-SiteFolder" key="remove-sitefolder" id="{B88F0283-D934-4490-BD2D-4ED0E4A8EDFD}" tid="{DD22F1B3-BD87-4DB2-9E7D-F7A496888D43}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="300" language="en" version="1" template="powershell script" parentid="{13729980-F568-4F0F-9792-EBC05F97879A}" created="20170514T081536Z"><fields><field tfid="{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}" key="__created by" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="Single-Line Text"><content>b72af521-7276-4e45-90b5-7322c68b5525</content></field><field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime"><content>20170514T081536Z</content></field><field tfid="{52807595-0F8F-4B20-8D2A-CB71D28C6103}" key="__owner" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime"><content>20170514T084835Z</content></field><field tfid="{B1A94FF0-6897-47C0-9C51-AA6ACB80B1F0}" key="script" type="Multi-Line Text"><content>function Remove-SiteFolder {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Item]$SiteFolder
    )

    begin {
        Write-Verbose "Cmdlet Remove-SiteFolder - Begin"
        Import-Function Remove-Site
    }

    process {
        Write-Verbose "Cmdlet Remove-SiteFolder - Process"
        Write-Progress -Status "Removing '$($SiteFolder.Name)' site group" -Activity "Getting all sites" -Completed
        $siteItemTemplateId = [Sitecore.XA.Foundation.Multisite.Templates+Site]::ID.ToString()
        [Sitecore.Data.Items.Item[]]$sites = Get-ChildItem -Path $SiteFolder.Paths.Path | ? { [Sitecore.Data.Managers.TemplateManager]::GetTemplate($_).InheritsFrom($siteItemTemplateId) }

        $sites | Where-Object { $_ -ne $null } | ForEach-Object { Remove-Site $_ }

        if ($SiteFolder.Children.Count -gt 0) {
            Write-Progress -Status "Removing '$($SiteFolder.Name)' site group" -Activity "Getting all other folders" -Completed
            $siteFolderTemplateId = [Sitecore.XA.Foundation.Multisite.Templates+SiteFolder]::ID.ToString()
            [Sitecore.Data.Items.Item[]]$folders = Get-ChildItem -Path $SiteFolder.Paths.Path | ? { [Sitecore.Data.Managers.TemplateManager]::GetTemplate($_).InheritsFrom($siteFolderTemplateId) }
            $folders | ForEach-Object { Remove-SiteFolder $_ }
        }

        if ($SiteFolder.Children.Count -eq 0) {
            $oldestFolderParent = $SiteFolder
            $siteFolderTemplateId = "{215F8C54-68B3-4481-A20B-A5716F06081F}"
            while ([Sitecore.Data.Managers.TemplateManager]::GetTemplate($oldestFolderParent).InheritsFrom($siteFolderTemplateId) -eq $false) {
                $oldestFolderParent = $oldestFolderParent.Parent | Wrap-Item
            }

            $folderTail = $SiteFolder.Paths.Path.Replace($oldestFolderParent.Paths.Path, "")

            Write-Progress -Status "Removing '$($SiteFolder.Name)' site group" -Activity "Removing media library folder" -Completed
            $tenantMediaLibrary = Get-Item master: -ID $oldestFolderParent.MediaLibrary

            $siteMediaFolderPath = "$($tenantMediaLibrary.Paths.Path)/$folderTail"
            if (Test-Path $siteMediaFolderPath) {
                $SiteFolderMediaFolder = Get-Item -Path $siteMediaFolderPath
                if ($SiteFolderMediaFolder.Children.Count -eq 0) {
                    $SiteFolderMediaFolder.Recycle() | Out-Null
                }
                else {
                    Write-Error "Could not remove site media folder '$($siteMediaFolderPath)' as there are other folders/sites inside"
                }
            }
            $SiteFolder.Recycle() | Out-Null
        }
    }

    end {
        Write-Verbose "Cmdlet Remove-SiteFolder - End"
    }
}</content></field></fields></item>